@CI
2年前 提问
1个回答

主机层检测webshell方法有哪些

GQQQy
2年前

主机层检测webshell方法有以下这些:

  • 静态检测:静态检测通过匹配特征码,特征值,危险函数函数来查找webshell的方法,只能查找已知的webshell。静态检测通过匹配特征码,特征值,危险函数函数来查找webshell的方法,只能查找已知的webshell,并且误报率漏报率会比较高,但是如果规则完善,可以减低误报率,但是漏报率必定会有所提高。优点是快速方便,对已知的webshell查找准确率高,部署方便,一个脚本就能搞定。缺点漏报率、误报率高,无法查找0day型webshell,而且容易被绕过。

  • 动态检测:webshell传到服务器了,在执行函数时这些对于系统调用、系统配置、数据库、文件的操作动作都是可以作为判断依据。webshell传到服务器了,黑客总要去执行它吧,webshell执行时刻表现出来的特征,我们称为动态特征。先前我们说到过webshell通信是HTTP协议。只要我们把webshell特有的HTTP请求/响应做成特征库,加到IDS里面去检测所有的HTTP请求就好了。webshell起来如果执行系统命令的话,会有进程。Linux下就是nobody用户起了bash,Win下就是IIS User启动cmd,这些都是动态特征

  • 日志检测:使用webshell一般不会在系统日志中留下记录,但是会在网站的web日志中留下webshell页面的访问数据和数据提交记录。使用Webshell一般不会在系统日志中留下记录,但是会在网站的web日志中留下Webshell页面的访问数据和数据提交记录。日志分析检测技术通过大量的日志文件建立请求模型从而检测出异常文件,称之为HTTP异常请求模型检测

  • 语法检测:语法语义分析形式,是根据php语言扫描编译的实现方式,进行剥离代码、注释,分析变量、函数、字符串、语言结构的分析方式,来实现关键危险函数的捕捉方式这样可以完美解决漏报的情况但误报上仍然存在问题。

  • 变形、窃密型webshell检测:变形webshell可以由上面所说的统计学NeoPI工具检测,也可以动态检测。比如,一个正常的程序员如果使用eval、system是不会刻意的转换隐藏的,如果发现某个函数执行了,代码中却找不到这个函数名,我们认为这是一个异常行为。

  • 统计学检测:webshell由于往往经过了编码和加密,会表现出一些特别的统计特征,根据这些特征统计学习。